#ifndef _FRACTAL_FRACTAL_COMPRESS_DOMAIN_SEQUENT_DOMAIN_H_
#define _FRACTAL_FRACTAL_COMPRESS_DOMAIN_SEQUENT_DOMAIN_H_


#include "domain_base.hpp"
#include "../../rectangle.hpp"


struct SequentDomain: public Domain
{
    SequentDomain(const Rectangle &bounds, int id);
    virtual string serialize(void) const;
private:
    int id;
};


class SequentDomainGenerator: public DomainGenerator
{
public:
    typedef SequentDomain domain_type;

    SequentDomainGenerator(int w, int h);

    virtual Domain *next(void);

private:
    int curr_id, curr_x, curr_y;
    int w, h;
};


#endif  // _FRACTAL_FRACTAL_COMPRESS_DOMAIN_SEQUENT_DOMAIN_H_
